package com.google.code.gaeom;

public interface LoadCommon<C extends LoadCommon<C>>
{
	public C unactivated();

	public C refresh();

	public C retries(int count);

	/**
	 * @param patterns
	 *            e.g. "**" activates everything, "foo.**" activates the foo relationship and anything it refers too
	 *            fully, but nothing else, "*" indicates activate the immediate relationships, but no further, ""
	 *            indicates activate only the root object(s), no relationships, "*.*" indicated activate relationships
	 *            on the root object, and relationships one level deep.
	 * @return self
	 */
	public C activate(String... patterns);
	
	public C activate(int levels);
}